There are a bunch of different packet types, each with their own format...
The first 3 bytes are the packet header...



PACKET_TYPE_CHAT
	1 byte		Packet type (0)
	1 byte		Random encryption seed
	1 byte		Checksum
	1 byte		Speaker class
	String		Speaker name
	String		Message


PACKET_TYPE_I_AM_HERE
	1 byte		Packet type (1)
	1 byte		Random encryption seed
	1 byte		Checksum
	2 byte		Room Number
	2 byte		Random Map Seed (just so we can be sure they really belong in our game)


PACKET_TYPE_ROOM_UPDATE
	1 byte		Packet type (2)
	1 byte		Random encryption seed
	1 byte		Checksum
	2 byte		Room Number
	2 byte		Random Map Seed (just so we can be sure they really belong in our game)
	1 byte		Door open'd flags (should match map format)
	1 byte		Number of characters in packet
	For each character...
	    1 byte	    Local index number
	    1 byte	    Script index (script must be found in NETLIST.DAT, or character isn't sent...)
	    1 byte	    Position modifiers (top 2 bits are for x pos) (mid 2 bits are for y pos) (low 4 bits are for z pos above floor)
	    1 byte	    X position (with modifier should range from 0-1023)
	    1 byte	    Y position (with modifier should range from 0-1023)
	    1 byte	    Facing (should range from 0-255)
	    1 byte	    Action (top bit is used to flag high-data characters - CHAR_FULL_NETWORK or riding a mount...)
	    1 byte	    Miscellaneous (top 2 bits are team) (then 1 bit for poison) (then 1 bit for petrify) (then 1 bit for low alpha) (then 1 bit for enchant_deflect) (then 1 bit for enchant_haste) (then 1 bit if enchanted in any way other than deflect & haste)
	    1 byte	    EqLeft
	    1 byte	    EqRight
	    1 byte	    EqCol01
	    If character is a high-data character
		1 byte		Eqcol23
		1 byte		EqSpec1
		1 byte		EqSpec2
		1 byte		EqHelm
		1 byte		EqBody
		1 byte		EqLegs
		1 byte		Character class
		1 byte		Local index number of mount (same as index of character if mount is invalid)


PACKET_TYPE_I_WANNA_PLAY
	1 byte		Packet type (3)
	1 byte		Random encryption seed
	1 byte		Checksum
	1 byte		TRUE if requesting list of all remote computers in game


PACKET_TYPE_OKAY_YOU_CAN_PLAY
	1 byte		Packet type (4)
	1 byte		Random encryption seed
	1 byte		Checksum
	2 byte		Random Map Seed
	2 byte		Number of remote computers in game (0 if not requested)
	For each remote...
	    4 byte	    IP Address
